#!/bin/bash

# Ollama 配置测试脚本

set -e

echo "🧪 测试 Ollama 配置..."

# 检查环境变量
if [ -z "$OLLAMA_BASE_URL" ]; then
    echo "⚠️  OLLAMA_BASE_URL 未设置，使用默认值: http://localhost:11434"
    OLLAMA_BASE_URL="http://localhost:11434"
fi

if [ -z "$OLLAMA_MODEL_NAME" ]; then
    echo "⚠️  OLLAMA_MODEL_NAME 未设置，使用默认值: qwen2.5:7b"
    OLLAMA_MODEL_NAME="qwen2.5:7b"
fi

echo "🔗 服务地址: $OLLAMA_BASE_URL"
echo "🤖 模型名称: $OLLAMA_MODEL_NAME"

# 测试 Ollama 服务连接
echo "🌐 测试服务连接..."
if ! curl -f "${OLLAMA_BASE_URL}/api/tags" &> /dev/null; then
    echo "❌ 无法连接到 Ollama 服务"
    echo "💡 请确保 Ollama 服务正在运行:"
    echo "   - 如果使用本地安装: ollama serve"
    echo "   - 如果使用 Docker: docker-compose up ollama"
    exit 1
fi

echo "✅ Ollama 服务连接正常"

# 检查模型是否已安装
echo "📦 检查模型安装..."
if ! curl -s "${OLLAMA_BASE_URL}/api/tags" | grep -q "$OLLAMA_MODEL_NAME"; then
    echo "❌ 模型 $OLLAMA_MODEL_NAME 未安装"
    echo "💡 安装方法:"
    echo "   - 本地安装: ollama pull $OLLAMA_MODEL_NAME"
    echo "   - 或者运行: ./init-models.sh"
    exit 1
fi

echo "✅ 模型 $OLLAMA_MODEL_NAME 已安装"

# 测试模型推理
echo "🧠 测试模型推理..."
TEST_PROMPT="请简单介绍一下你自己"

response=$(curl -s -X POST "${OLLAMA_BASE_URL}/api/generate" \
    -H "Content-Type: application/json" \
    -d "{
        \"model\": \"$OLLAMA_MODEL_NAME\",
        \"prompt\": \"$TEST_PROMPT\",
        \"stream\": false,
        \"options\": {
            \"temperature\": 0.1,
            \"num_predict\": 100
        }
    }")

if [ $? -eq 0 ] && echo "$response" | grep -q "response"; then
    echo "✅ 模型推理测试成功"
    echo "📝 模型响应预览:"
    echo "$response" | grep -o '"response":"[^"]*"' | head -1 | sed 's/"response":"//' | sed 's/"$//' | head -c 100
    echo "..."
else
    echo "❌ 模型推理测试失败"
    echo "📋 错误详情: $response"
    exit 1
fi

# 测试 AI Agent 后端
echo "🤖 测试 AI Agent 后端..."
if ! curl -f "http://localhost:8000/health" &> /dev/null; then
    echo "❌ AI Agent 后端服务未运行"
    echo "💡 请先启动后端服务:"
    echo "   - 开发环境: cd backend && uvicorn main:app --reload"
    echo "   - Docker: docker-compose up backend"
    exit 1
fi

echo "✅ AI Agent 后端连接正常"

echo ""
echo "🎉 所有测试通过！Ollama 配置正确。"
echo ""
echo "🚀 现在可以访问前端界面:"
echo "   http://localhost:3000"
